/*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
 H
 H   blocked_queue.h
 H   Application name:
 H   Programmer name: Deepa Sahni
 H   Date completed: 05/15/11
 H   Brief Description: A blocked queue associated with a particular IO device.
 H   The queue consists of processes waiting on the IO device.
 H
 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*/

#include "list.h"

/*##################################################################################################
 # Defines
 ##################################################################################################*/

#ifndef BLOCKED_QUEUE_H_
#define BLOCKED_QUEUE_H_

typedef struct blocked_queue {
	int size;
	LinkedList queue;

} BlockedQueue;
#endif /* BLOCKED_QUEUE_H_ */

/*##################################################################################################
 # Operations
 ##################################################################################################*/

//Adds a new item to the end of the queue.
int enqueue(BlockedQueue *q, const int value);

//Removes the item at the front of the queue.
int dequeue(BlockedQueue *q);

